package com.ocom.payconfig.controller;

import com.ocom.common.constant.PayConfigUrl;
import com.ocom.common.entity.payconfig.FeeData;
import com.ocom.common.entity.payconfig.FeeItem;
import com.ocom.common.enums.DataSourceEnum;
import com.ocom.common.enums.ResultEnum;
import com.ocom.common.resp.Result;
import com.ocom.common.utils.ResultUtil;
import com.ocom.common.utils.StringUtil;
import com.ocom.common.vo.ComIdVo;
import com.ocom.common.vo.payconfig.FeeItemListVo;
import com.ocom.mysql.aspect.DataSourceAspect;
import com.ocom.payconfig.service.FeeItemService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.time.LocalDateTime;

/**
 * fee_itemController
 *
 * @author junShu
 * @date 2023-08-18 17:02:55
 */
@RestController
public class FeeItemController {

    @Resource
    private FeeItemService feeItemService;

    /**
     * 查询FeeItem列表
     */
    @PostMapping(PayConfigUrl.URL_FeeItemsOnShow)
    public Result feeItemList(@RequestBody FeeItemListVo request) {
//            Page<FeeItem> page = FeeItemService.selectFeeItemPage(pageNumber, pageSize);
        return feeItemService.feeItemList(request.getComId(), request);
    }

    /**
     * 新增保存FeeItem
     */
    @PostMapping(PayConfigUrl.URL_FeeItemsAdd)
    public Result addSave(@RequestBody FeeItem request) {
        return feeItemService.addSave(request.getComId(), request);
    }

    /**
     * 修改保存FeeItem
     */
    @PostMapping(PayConfigUrl.URL_FeeItemsModify)
    public Result editSave(@RequestBody FeeItem feeItem) {
        return feeItemService.editSave(feeItem.getComId(), feeItem);
    }

    @PostMapping(PayConfigUrl.URL_FeeItemsStart)
    public Result startFeeItem(@RequestBody FeeItem feeItem) {
        return feeItemService.startFeeItem(feeItem.getComId(), feeItem);
    }

    @PostMapping(PayConfigUrl.URL_FeeItemsPause)
    public Result pauseFeeItem(@RequestBody FeeItem feeItem) {
        return feeItemService.pauseFeeItem(feeItem.getComId(), feeItem);
    }

    @PostMapping(PayConfigUrl.URL_FeeItemsClose)
    public Result closeFeeItem(@RequestBody FeeItem feeItem) {
        return feeItemService.closeFeeItem(feeItem.getComId(), feeItem);
    }

    @PostMapping(PayConfigUrl.URL_getFeePayWay)
    public Result feeItemListByWay(@RequestBody FeeItemListVo request) {
            return feeItemService.feeItemListByWay(request.getComId(),request);
    }

    @PostMapping(PayConfigUrl.URL_findByFeeDataId)
    public Result findByFeeDataId(@RequestParam("comId") Long comId, @RequestParam("dataId") Integer dataId) {
        return ResultUtil.success(feeItemService.findByFeeDataId(comId, dataId));
    }
}
